Some computer systems use virtual memory to provide a contiguous memory address space for a given process. That is, a process can execute within the virtual memory as a contiguous address space, even if the process is actually fragmented in physical memory (e.g., random-access memory, magnetic storage on a hard disk, flash memory on a solid state device, etc.). Further, by selectively transferring data from physical memory to disk-based storage (e.g., a hard drive), virtual memory can be used to execute a process that requires a larger memory address space than that of the available physical memory. When a process requires a data object stored in virtual memory, the virtual memory address of the object is translated to the corresponding physical memory address(es) where the object is physically stored. Typically, virtual memory is divided into pages of one or more sizes, which correspond to the page sizes supported by a processor's memory management unit.
One type of data object that may be stored in virtual memory is a library. A library is a collection of subroutines or classes which contain code and data that provide services to a given program (or set of programs).